package deneme;

import static org.junit.Assert.*;

import org.junit.Test;

import org.junit.After;
import org.junit.Before;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

/**
 * Test1 sınıfı "AddJob.xhtml" web sayfasının Selenium bileşeni kullanılarak
 * test edilmesini sağlar.
 * 
 * @version 4.3 06 Aus 2013
 * @author etmen
 */
public class Test1 {
	/*
	 * Bu sınıf, bir adet FirefoxDriver nesnesi ile setUp, testAdvancedSearch ve
	 * tearDown metodlarından oluşur.
	 */

	/** Firefox driverını ilklendirir. */
	private WebDriver driver = new FirefoxDriver();

	/**
	 * Firefox driverına Addjob.xhtml adresini atar.
	 */
	@Before
	public void setUp() throws Exception {
		driver.get("http://localhost:8080/deneme/AddJob.xhtml");
	}

	/**
	 * Test metodumuz AddJob.xhtml sayfasını test etmemizi sağlayan metodları
	 * kullanır.
	 */
	@Test
	public void testAdvancedSearch() throws Exception {
		// Selenium serverın Meslek Ekle inputText'ine Dişçi kelimesini
		// girmesini sağlar.
		driver.findElement(By.name("j_idt10:j_idt13")).sendKeys("Dişçi");

		// Selenium serverın Meslek Ekle butonuna basmasını sağlar.
		driver.findElement(By.name("j_idt10:j_idt14")).click();

		
		// PrimaFace DataTable bileşeninin ekranda görüntülenip
		// görüntülenmediğini test eder.
		assertTrue(driver.findElement(By.id("mainForm:dataTable"))
				.isDisplayed());

		
		// PrimaFace DataTable bileşeninin birinci sütun başlığını test eder
		assertTrue((driver.findElement(By.xpath("//tr[1]/th[1]")).getText()
				.equals("Name")));

		
		// DataTable bileşeninin ilk elemanını test eder.
		assertTrue((driver
				.findElement(
						By.xpath("//table[@id='mainForm:dataTable']/tbody/tr[1]/td[1]"))
				.getText().equals("Dişçi")));

		
		//DataTable bileşeninin ikinci elemanını test eder.
		assertTrue((driver
				.findElement(
						By.xpath("//table[@id='mainForm:dataTable']/tbody/tr[2]/td[1]"))
				.getText().equals("Dişçi")));

	}

	/**
	 * Firefox driverının kapatılmasını sağlar.
	 */
	@After
	public void tearDown() throws Exception {
		driver.quit();
	}

}
